All files / src/app/api/transfers/[id] route.ts

92.3% Statements 12/13
75% Branches 3/4
100% Functions 1/1
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40        1x                 3x 3x   3x 3x   3x 1x           2x 2x     1x   1x 1x            
import { NextRequest, NextResponse } from "next/server";
import { edcClient } from "@/lib/edc";
import { requireAuth, isAuthError } from "@/lib/auth-guard";
 
export const dynamic = "force-dynamic";
 
/**
 * GET /api/transfers/[id]?participantId=<id> — Get transfer by ID.
 */
export async function GET(
  req: NextRequest,
  { params }: { params: Promise<{ id: string }> },
) {
  const auth = await requireAuth();
  Iif (isAuthError(auth)) return auth;
 
  const { id } = await params;
  const participantId = req.nextUrl.searchParams.get("participantId");
 
  if (!participantId) {
    return NextResponse.json(
      { error: "participantId query parameter is required" },
      { status: 400 },
    );
  }
 
  try {
    const transfer = await edcClient.management(
      `/v5alpha/participants/${participantId}/transferprocesses/${id}`,
    );
    return NextResponse.json(transfer);
  } catch (err) {
    console.error(`Failed to get transfer ${id}:`, err);
    return NextResponse.json(
      { error: "Failed to get transfer" },
      { status: 502 },
    );
  }
}